﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace PryectoElectrodomesticos.Controllers
{
    public class ElectroController : Controller
    {
        //
        // GET: /Electro/

        public static List<Producto> productos = new List<Producto>();
        public static List<Producto> carrito = new List<Producto>();

        #region punto1
        public ElectroController()
        {
            
           if (productos.Count == 0){
            Producto producto = new Producto(Categorias.COCINA, "Licuadora", 62);
            productos.Add(producto);
            producto = new Producto(Categorias.COCINA, "Plancha", 70);
            productos.Add(producto);
            producto = new Producto(Categorias.LIMPIEZA, "Aspiradora", 590);
            productos.Add(producto);
            producto = new Producto(Categorias.INFORMATICA, "Panel de Control", 62);
            productos.Add(producto);
            }
        }
        
        public ActionResult Index()
        {
            return View();
        }

        public ActionResult muestraProductos()
        {
            return View(model: productos);
        }

        public ActionResult CargaProducto() 
        {
            return View(model: productos);            
        }

        public ActionResult Filtrar(Categorias categoria)
        {
            List<Producto> aux = new List<Producto>();

                foreach (var i in productos)
                {
                    if (i.categoria == categoria)
                    {
                       aux.Add(i); 
                    }
                }

                    return View("muestraProductos", model: aux);
        }


#endregion 


        #region punto2



        public ActionResult Agregar(Categorias categoria, String nombre, double precio)
        {
            Producto item = new Producto(categoria: categoria, nombre: nombre, precio: precio);
            productos.Add(item);

            return RedirectToAction("CargaProducto");
        }

        public ActionResult Borrar(int pos)
        {   
            productos.RemoveAt(pos);
            return RedirectToAction("CargaProducto");
        }

        [HttpGet]
        public ActionResult Modificar(int pos)
        {
            var m = productos[pos];
            ViewBag.pos = pos;
            return View(m);

        }

        [HttpPost]
        public ActionResult Modificar(Categorias categoria, String nombre, double precio, int pos)
        {
            var m = productos[pos];
            m.categoria = categoria;
            m.nombre = nombre;
            m.precio = precio;
            return RedirectToAction("CargaProducto");
        }
        #endregion



        public ActionResult Carrito()
        {
            return View(model: productos);
        }

        public ActionResult CargaCarrito()
        {
            return View("CarritoCargado", model: carrito);
        }

        public ActionResult AgregarCarrito(int cantidad, int pos)
        {
            for (int i = 1; i == cantidad; i++)
            {
                carrito.Add(productos[pos]);
            }
                return RedirectToAction("CargaCarrito");
        }


    }





    public enum Categorias{ COCINA, LIMPIEZA, PEQUEÑOSELECTROS, INFORMATICA }

    public class Producto 
    {
        public String nombre { get; set; }
        public double precio { get; set; }
        public Categorias categoria { get; set; }

        public Producto(Categorias categoria, String nombre, double precio) 
        {
            this.nombre = nombre;
            this.precio = precio;
            this.categoria = categoria;
        }

    }
}
